class Result {
  constructor(code, data, msg) {
    this.code = code;
    this.data = data;
    this.msg = msg;
  }

  // 返回对象形式
  toObject() {
    return {
      code: this.code,
      data: this.data,
      msg: this.msg
    };
  }

  static success(data, msg) {
    return new Result(200, data, msg);
  }

  static error(msg) {
    return new Result(500, null, msg);
  }

  static badRequest(msg) {
    return new Result(400, null, msg);
  }

  static notfound(msg){
    return new Result(404, null, msg);
  }

  static unauthorized(msg){
    return new Result(401, null, msg);
  }
  static forbidden(msg){
    return new Result(403, null, msg);
  }
  
}

export default Result;